package Control;

import java.io.IOException;
import java.util.Iterator;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bo.ManterCddBO;
import bo.ManterFuncionarioBO;
import dao.ManterCddDAO;
import dao.ManterFuncionarioDAO;
import dto.Cdd;
import dto.Funcionario;

/**
 * Servlet implementation class ManterFuncionarioControl
 */
@WebServlet("/ManterFuncionarioControl")
public class ManterFuncionarioControl extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public ManterFuncionarioControl() {
        // TODO Auto-generated constructor stub
    }

    /**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String tipoReq = "";
		tipoReq = request.getParameter("tipoRequisicao");
		ManterFuncionarioDAO dao = new ManterFuncionarioDAO();
		
		 if(tipoReq.equals("filtro")){
			
			String nome = request.getParameter("nome");
			Iterator<Funcionario> lista = dao.consultarFuncionarioPorNome(nome);
			
			request.setAttribute("lista", lista);
			RequestDispatcher dispatcher = request.getRequestDispatcher("funcionario/manterfuncionario.jsp");  
			dispatcher.forward(request, response);
			
		 }else if(tipoReq.equals("excluir")){
			 
			 String matricula = request.getParameter("matricula");
			 
			 dao.excluir(matricula);
			 Iterator<Funcionario> lista = dao.consultarTodos();
				
			request.setAttribute("lista", lista);
			RequestDispatcher dispatcher = request.getRequestDispatcher("funcionario/manterfuncionario.jsp");  
			dispatcher.forward(request, response);
			 
		}else if(tipoReq.equals("alterar")){
			
			String matricula = request.getParameter("matricula");
			Funcionario func = dao.consultarFuncionarioPorId(matricula);
			request.setAttribute("funcionario", func);
			RequestDispatcher dispatcher = request.getRequestDispatcher("funcionario/editar.jsp");  
			dispatcher.forward(request, response);
			
		}else{
			Iterator<Funcionario> lista = dao.consultarTodos();
			
			request.setAttribute("lista", lista);
			RequestDispatcher dispatcher = request.getRequestDispatcher("funcionario/manterfuncionario.jsp");  
			dispatcher.forward(request, response);  
		}
	}
	
	
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String tipoReq = request.getParameter("tipoRequisicao");
		ManterFuncionarioDAO dao = new ManterFuncionarioDAO();
		ManterFuncionarioBO bo = new ManterFuncionarioBO();
		
		if(tipoReq.equals("cadastro")){
			
			System.out.println(tipoReq);
			
			Funcionario func = new Funcionario();
			String matricula = request.getParameter("matricula");
			String nome = request.getParameter("nome");
			String telefone = request.getParameter("telefone");
			String endereco = request.getParameter("endereco");
			String email = request.getParameter("email");
			
			func.setMatricula(matricula);
			func.setNome(nome);
			func.setTelefone(telefone);
			func.setEndereco(endereco);
			func.setEmail(email);

			bo.validaInsercao(func);
			Iterator<Funcionario> lista = dao.consultarTodos();
			
			request.setAttribute("lista", lista);
			RequestDispatcher dispatcher = request.getRequestDispatcher("funcionario/manterfuncionario.jsp");  
			dispatcher.forward(request, response);
			
		}else if(tipoReq.equals("alterar")){
			
			Funcionario func = new Funcionario();
			String matricula = request.getParameter("matricula");
			String nome = request.getParameter("nome");
			String telefone = request.getParameter("telefone");
			String endereco = request.getParameter("endereco");
			String email = request.getParameter("email");
			
			func.setMatricula(matricula);
			func.setNome(nome);
			func.setTelefone(telefone);
			func.setEndereco(endereco);
			func.setEmail(email);
			
			bo.validaAlteracao(func);
			Iterator<Funcionario> lista = dao.consultarTodos();
			
			request.setAttribute("lista", lista);
			RequestDispatcher dispatcher = request.getRequestDispatcher("funcionario/manterfuncionario.jsp");  
			dispatcher.forward(request, response);
		}
	}

}
